if __name__ == '__main__':
numAlarmClocks = int(input())
xDict = {}
yDict = {}
for i in range(numAlarmClocks):
xPos, yPos = input().split(" ")
if xPos in xDict:
xDict[xPos] += 1
else:
xDict[xPos] = 1
if yPos in yDict:
yDict[yPos] += 1
else:
yDict[yPos] = 1
print(min(len(xDict), len(yDict)))
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int n,mx=INT_MIN;
cin>>n;
set<int>s1,s2;
for(int i=0;i<n;i++)
{
int a,b;
cin>>a>>b;
s1.insert(a);
s2.insert(b);
}
cout<<min(s1.size(),s2.size());
return 0;
}
1517A - Sum of 2050 | 620A - Professor GukiZ's Robot |
1342A - Road To Zero | 1520A - Do Not Be Distracted |
352A - Jeff and Digits | 1327A - Sum of Odd Integers |
1276A - As Simple as One and Two | 812C - Sagheer and Nubian Market |
272A - Dima and Friends | 1352C - K-th Not Divisible by n |
545C - Woodcutters | 1528B - Kavi on Pairing Duty |
339B - Xenia and Ringroad | 189A - Cut Ribbon |
1182A - Filling Shapes | 82A - Double Cola |
45A - Codecraft III | 1242A - Tile Painting |
1663E - Are You Safe | 1663D - Is it rated - 3 |
1311A - Add Odd or Subtract Even | 977F - Consecutive Subsequence |
939A - Love Triangle | 755A - PolandBall and Hypothesis |
760B - Frodo and pillows | 1006A - Adjacent Replacements |
1195C - Basketball Exercise | 1206A - Choose Two Numbers |
1438B - Valerii Against Everyone | 822A - I'm bored with life |